extend :: (w a -> b) -> w a -> w b